package com.example.spring.bean.load06imports.import2;

import org.springframework.context.annotation.ImportSelector;
import org.springframework.core.type.AnnotationMetadata;

/**
 * 通过ImportSelector接口导入类
 * <p> 如果需要动态加载的类，可以把这里做成一个开关，用来开启或者关闭某一项功能
 * <p> 需要把这个实现类配合@Import使用，使用其他方式并不会把想要创建的Bean(本例中的TestDao)注入到容器
 */
public class CustomImportSelector implements ImportSelector {

    /**
     * 返回值是一个字符串数组，
     * 如果在配置类内引用此对象，这里返回的字符串数组中的类名就会被 Spring 容器 new 出来，然后再把这些对象放到容器当中去
     */
    @Override
    public String[] selectImports(AnnotationMetadata importingClassMetadata) {
        //if方法等

        return new String[]{"com.example.spring.import2.imports.base.spring.TestDao"};
    }
}
